let prefix="http://localhost:8080/";
function loadTable() {
    $('#stTable').bootstrapTable({
        method : 'get',
        url : "/webapi/stscore/list",//请求路径
        striped : true, //是否显示行间隔色
        pageNumber : 1, //初始化加载第一页
        pagination : true,//是否分页
        sidePagination : 'server',//server:服务器端分页|client：前端分页
        pageSize : 5,//单页记录数
        pageList : [ 5, 10, 20, 30 ],//可选择单页记录数
        showRefresh : false,//刷新按钮
        queryParams : function(params) {//上传服务器的参数
            return {//如果是在服务器端实现分页，limit、offset这两个参数是必须的
                limit: params.limit, // 每页显示数量
                offset: params.offset, // SQL语句起始索引
                page : (params.offset / params.limit) + 1, //当前页码

                Name: $('#search_name').val(),
                Tel: $('#search_tel').val()
            };
        },
        columns : [ {
            title : '学生ID',
            field : 'id',
            sortable : true
        }, {
            title : '姓名',
            field : 'name',
            sortable : true
        }, {
            title : '学号',
            field : 'no',
        }, {
            title : '高数',
            field : 'gaoshu',
        },{
            title: '线性代数',
            field: 'xiandai'

        },{
            title : '计算机组成原理',
            field : 'jizu',
        } , {
            title: '操作',
            formatter: operateFormatter // 自定义操作列
        }]
    })
}
// 自定义操作列的渲染函数
function operateFormatter(value, row) {
    return [
        '<button type="submit" class="btn btn-success" onclick="getStudent('+ row.id +')">更新</button>',
    ].join('');
}

let getId = null;
function getStudent(id){
    $("#myModal").modal("show");
    $.ajax({
        url:"/webapi/stscore/getdata/"+id,
        method:"get",
        success:function (rs) {
            $("#name").val(rs.name);
            $("#no").val(rs.no)
            $("#gaoshu").val(rs.gaoshu);
            $("#xiandai").val(rs.xiandai);
            $("#jizu").val(rs.jizu);
        }
    });
    getId = id;
}
function updateScore(id){
    const newScore = $("#formStudent").serialize();
    if(!validateForm()){
        return;
    }
    if(id) {
        $.ajax({
            url: "/webapi/stscore/update/" + id,
            method: "put",
            data: newScore,
        }).done(function () {
            $("#myModal").modal("hide");
            $('#stTable').bootstrapTable('refresh');
        })
    }
}
function searchStudent(){
    let no = document.getElementById('studentNoInput').value;  // 获取输入的学号
    if (no) {
        $.ajax({
            type: 'GET',
            url: '/webapi/stscore/search/'+no,
            success: function(data) {
                $('#stTable').bootstrapTable('destroy'); // 先销毁之前的表格实例
                $('#stTable').bootstrapTable({
                    data: data,
                    striped: true,
                    pagination: true,
                    pageSize: 3,
                    pageList: [5, 10, 20, 30],
                    columns : [ {
                        title : '学生ID',
                        field : 'id',
                        sortable : true
                    }, {
                        title : '姓名',
                        field : 'name',
                        sortable : true
                    }, {
                        title : '学号',
                        field : 'no',
                    }, {
                        title : '高数',
                        field : 'gaoshu',
                    },{
                        title: '线性代数',
                        field: 'xiandai'

                    },{
                        title : '计算机组成原理',
                        field : 'jizu',
                    } , {
                        title: '操作',
                        formatter: operateFormatter // 自定义操作列
                    }]
                });
            }
        });
    }
}
$("#save").on("click",function (event){
    event.preventDefault();
    if(getId!=null){
        updateScore(getId);
    }
    console.log(getId)
})

// 表单验证函数
function validateForm() {
    let isValid = true;

    // 验证高数分数
    const gsInput = $("#gaoshu").val().trim();
    const gaoshuError = $("#gaoshuError");
    if (gsInput.length === 0 || gsInput < 0 || gsInput > 100) {
        gaoshuError.text('分数必须在0到100之间！');
        isValid = false;
    } else {
        gaoshuError.text('');
    }

    // 验证线性代数分数
    const xdInput = $("#xiandai").val().trim();
    const xdError = $("#xiandaiError");
    if (xdInput.length === 0 || xdInput < 0 || xdInput > 100) {
        xdError.text('分数必须在0到100之间！');
        isValid = false;
    } else {
        xdError.text('');
    }

    // 验证计算机组成原理分数
    const jzInput = $("#jizu").val().trim();
    const jzError = $("#jizuError");
    if (jzInput.length === 0 || jzInput < 0 || jzInput > 100) {
        jzError.text('分数必须在0到100之间！');
        isValid = false;
    } else {
        jzError.text('');
    }

    return isValid;
}
$(function(){
    loadTable()
})